** DOCUMENTATION FOR ** *** FASTLOAD CREATE *** WRITTEN BY THE STACK COPYRIGHT 1982 CORRUPT COMPUTING *** BACKGROUND *** FASTLOAD CREATE IS, AS THE NAME IMPLIES, A PROGRAM THAT CREATES FASTLOAD FILES. WHAT IS A FASTLOAD FILE? IT IS LIKE A QUICKLOAD FILE (THE KIND USED FOR MANY CRACKED GAMES THAT TAKE UP TOO MUCH ROOM TO FIT IN WITH DOS) EXCEPT THAT A FASTLOAD FILE CAN BE BIGGER THAN A QUICKLOAD FILE SINCE A FASTLOAD FILE HAS ITS OWN SHRUNK RWTS BUILT IN WHILE A QUICKLOAD FILE USES NORMAL RWTS. THIS SHRUNKEN RWTS IS LESS THAN $300 HEX BYTES LONG AND THE ROUTINE THAT USES IT IS SLIGHTLY LESS THAN $100 HEX BYTES LONG MEANING THAT YOUR PROGRAM CAN TAKE UP ALL OF MEMORY MINUS $400 BYTES FOR THE FASTLOADER, $100 FOR PAGE ZERO, $100 FOR THE STACK, AND $100 FOR THE CURRENT TRACK/SECTOR LIST BEING USED. THAT MEANS THAT YOUR PROGRAM CAN BE UP TO $B900 BYTES VERSUS ABOUT $A200 BYTES WITH QUICKLOADER. NOT ONLY THAT, BUT YOU DON'T NEED TO WRITE ANY MOVE ROUTINES AT THE START OF YOUR CRACKED PROGRAM BECAUSE THE FASTLOADER DOES ALL OF THEM FOR YOU. SINCE FASTLOADER DOES NOT USE NORMAL RWTS, YOUR PROGRAM CAN BE LOADED DIRECTLY INTO LOCATIONS $B800-BFFF WHERE NORMAL RWTS NORMALLY IS. (FASTLOAD'S MINI-RWTS RESIDES AT $500-$7FF WHERE THE TEXT SCREEN IS.) THIS MEANS THAT THE ONLY MOVES THAT NEED TO BE MADE ARE MOVES TO ADDRESSES $0000-$02FF AND $0400-$07FF. NOTE THAT THE PROGRAM MAY BE DIRECTLY LOADED INTO PAGE 3 AS WELL AS ALL PAGES ABOVE AND INCLUDING 8. YOU MAY ASK, HOW DOES THE MOVE ROUTINE MOVE SOMETHING INTO THE PAGE IT IS IN. WELL, THE MOVE ROUTINES ARE IN PAGE 4 AND THE RWTS IS IN PAGES 5-7. WHAT HAPPENS WHEN THE FASTLOADER IS RUN, IS, THE PROGRAM IS LOADED INTO PAGES 3, AND $08-$BF. AFTER LOADING IS COMPLETE, THE MOVE ROUTINES TAKE OVER. FIRST, ANYTHING THAT GOES INTO PAGES 0, 1, 2, 5, 6, OR 7 GETS MOVED THERE. NOTE THAT NOTHING GETS MOVED TO PAGE 3. IF THERE IS SOMETHING THAT GOES IN PAGE 3 IT IS LOADED IN THERE. AFTER THOSE MOVES ARE COMPLETE, PAGE 4 GETS MOVED TO THE PAGE THAT WAS MOVED TO PAGE 6, WHICH IS NO LONGER NEEDED. IF NOTHING WAS MOVED TO PAGE 6, PAGE 4 GETS MOVED THERE. THEN WHATEVER PAGE GOES INTO PAGE 4 GETS MOVED TO PAGE 4. WHEN DONE WITH ALL OF THESE MOVES, THE FASTLOADER THEN JUMPS TO THE BEGINNING OF YOUR PROGRAM. *** USING FASTLOAD CREATE *** NOW THAT YOU KNOW ALL ABOUT THE FASTLOADER, THIS SECTION WILL TELL YOU HOW TO USE THE PROGRAM THAT CREATES THESE FASTLOAD FILES. IT IS REALLY VERY SIMPLE. JUST TYPE: ]BRUN FASTLOAD CREATE AND WAIT FOR IT TO LOAD IN. THE SCREEN WILL CLEAR AND THERE WILL BE A MESSAGE AT THE BOTTOM OF THE SCREEN TELLING YOU THAT YOU MAY TYPE UP TO TWO LINES OF ID TEXT FOR YOUR PROGRAM. THIS TEXT WILL BE DISPLAYED WHILE THE FASTLOADER IS LOADING YOU PROGRAM ON THE TOP TWO LINES OF THE SCREEN. FOR EXAMPLE, YOU COULD SAY: XYZ PROGRAM COPYRIGHT 1982 BY XYZ CORP CRACKED 1982 BY YOUR NAME THEN WHENEVER SOMEONE SAYS: ]BRUN XYZ PROGRAM THE FASTLOADER WILL LOAD IN, AND AT THE TOP OF THE SCREEN IT WILL DISPLAY YOUR MESSAGE. AT THE BOTTOM OF THE SCREEN IT WILL DISPLAY THE WORD "FASTLOADER" SO THAT EVERYBODY RUNNING IT WILL KNOW THAT IT'S A GREAT PROGRAM. IN THE MIDDLE OF THE SCREEN AND ON PART OF THE BOTTOM LINE YOU WILL BE ABLE TO SEE THE DATA AS IT IS READ IN. THIS IS DUE TO THE FACT THAT THE RWTS IS STORED IN THE TEXT PAGE OF MEMORY. OF COURSE, THERE WILL ALSO BE A BUNCH OF GARBAGE ON THE SCREEN THAT IS REALLY THE RWTS, THE DRIVER, THE MOVER, AND THE TABLES. NOW, BACK TO THE PROGRAM... AS YOU HAVE PROBABLY NOTICED IF YOU ARE RUNNING THE CREATE PROGRAM IT SAYS THAT YOU MAY USE THE RETURN KEY TO SKIP TO THE NEXT LINE AND THE KEY WHEN YOU ARE DONE. TRY IT! IF YOU TYPE THE RETURN KEY WHILE ON THE TOP LINE YOU'LL SKIP TO THE BEGINNING OF THE BOTTOM LINE AND IF YOU TYPE THE RETURN KEY WHILE ON THE BOTTOM LINE YOU'LL SKIP TO THE BEGINNING OF THE TOP LINE. ANOTHER KEY NOT MENTIONED IS CTRL-Q. THIS CAN BE USED ANY TIME THROUGHOUT THE PROGRAM WHENEVER IT IS EXPECTING INPUT TO STOP THE PROGRAM. UPON RECEIPT OF A CTRL-Q, THE PROGRAM WILL ASK WHETHER OR NOT YOU REALLY WANT TO QUIT. IF YOU DID, TYPE A "Y" AND IF YOU DIDN'T, TYPE AN "N". IF YOU TYPE "Y", THE PROGRAM WILL TELL YOU THAT IT IS DONE WITH YOUR FILE AND WILL ASK IF YOU'D LIKE TO CREATE ANOTHER FASTLOAD FILE. IF YOU WOULD, JUST TYPE "Y", OTHERWISE, TYPE "N". NOW BACK TO THE ID TEXT... REMEMBER, JUST TYPE THE KEY WHEN DONE. THE NEXT THING THE PROGRAM WILL ASK FOR IS THE NAME, STARTING PAGE, AND NUMBER OF PAGES OF EACH OF THE FILES YOU WISH TO LINK TOGETHER INTO ONE FASTLOAD FILE. YOU SEE, THE CREATE PROGRAM WILL TAKE YOUR FILES AND BUILD A TABLE THAT WILL BE LOCATED NEAR THE START OF THE FASTLOADER PREFIX. THIS TABLE WILL TELL THE FASTLOADER DRIVER WHERE TO LOAD EACH SECTOR. EXAMPLE: SAY YOU HAVE FOUR FILES NAMED FILE #1, FILE #2, FILE #3, AND FILE #4. LET'S ALSO SAY THAT FILE #1 IS PAGES 0-7, FILE #2 IS PAGES 8-$1D FILE #3 IS A PICTURE THAT GOES FROM PAGES $20-$3F, AND FILE #4 IS PAGES $47-$BF. SINCE THE FILES HAVE LENGTHS OF 8, $16, $20, AND $79, RESPECTIVELY, THE TOTAL LENGTH IS $B7 PAGES WHICH MEANS THAT IT IS WITHIN THE LIMITS OF FASTLOADER. (ANY LENGTH OF $B9 OR LESS IS WITHIN THE LIMITS.) NOW, IF YOU ARE IN THE CREATE PROGRAM, THE TOP OF YOUR SCREEN SHOULD LOOK SOMETHING LIKE THIS: FILE: _ ,D1 START PAGE: # OF PAGES: OK? YOU MAY NOW TYPE IN THE FILENAME OF THE FIRST FILE TO LINK. THE FIRST FILE IN OUR EXAMPLE IS FILE #1, SO, YOU WOULD TYPE "FILE #1" (WITHOUT THE QUOTES). AFTER YOU TYPE THE FILENAME, HIT THE RETURN KEY. THE UNDERSCORE CURSOR WILL JUMP DOWN TO THE "START PAGE" LINE AND YOU THEN TYPE IN THE STARTING PAGE OF THAT FILE. IN OUR EXAMPLE, THE START PAGE OF FILE #1 IS ZERO. SINCE YOU ARE SUPPOSED TO TYPE IT AS A 2-DIGIT HEX NUMBER, YOU WOULD TYPE "00". IF YOU MAKE A MISTAKE, YOU MUST TYPE IN DUMMY INFORMATION UNTIL IT GETS TO THE "OK?" LINE, WHERE YOU WOULD TYPE "N" FOR NO, ALLOWING YOU TO START THAT FILE OVER. WHEN YOU ARE DONE TYPING THE STARTING PAGE NUMBER, THE CURSOR WILL SKIP OVER TO THE "# OF PAGES" LINE. HERE YOU TYPE THE NUMBER OF PAGES YOUR FILE IS. AGAIN, IT MUST BE A 2-DIGIT HEX NUMBER. IN OUR EXAMPLE, FILE #1 HAS A LENGTH OF 8. THIS, OF COURSE, MEANS THAT YOU WOULD TYPE "08". THE CURSOR WILL NOW JUMP TO THE "OK?" LINE. IF EVERYTHING IS OK, TYPE "Y" AND THE TOP OF THE SCREEN WILL CLEAR, THE HEADINGS WILL BE PUT UP AGAIN, AND IT WILL WAIT FOR YOU TO TYPE IN THE NEXT FILENAME. ON THE OTHER HAND, IF YOU SAY "N" TO THE "OK?" PROMPT, THE SPEAKER WILL BEEP AND IT WILL WAIT FOR YOU TO RETYPE EVERYTHING FOR THAT FILE. YOU WOULD NOW TYPE IN THE FILENAME FOR THE SECOND FILE. IN OUR EXAMPLE, IT WOULD BE FILE #2 WITH A STARTING PAGE OF $08 AND A LENGTH OF $16. YOU WOULD CONTINUE TYPING IN THE FILENAMES IN THIS MANNER UNTIL YOU ARE DONE. WHEN THERE ARE NO MORE FILES, JUST HIT THE KEY. ANOTHER FEATURE IS THAT NOT ALL OF THE FILES HAVE TO BE ON THE SAME DISKETTE IF YOU HAVE MORE THAN ONE DISK DRIVE. IF A CERTAIN FILE IS NOT ON THE DISK IN THE DRIVE SHOWN BY THE ",DX" (WHERE X IS THE DRIVE NUMBER) AT THE TOP OF THE SCREEN, JUST TYPE CTRL-D AND THAT FILE AND ALL OF THE FILES THAT YOU TYPE IN AFTER THAT ONE WILL BE READ OFF THE OTHER DRIVE. HOWEVER, THERE IS ONE THING THAT YOU MUST REMEMBER. THE DISK THAT THE FASTLOAD FILE IS TO BE CREATED ON MUST BE IN DRIVE 1 AND MUST STAY IN DRIVE 1 DURING THE WHOLE TIME THE PROGRAM IS CREATING THE FASTLOAD FILE. THIS IS DUE TO THE FACT THAT EVERY ONCE IN A WHILE, THE PROGRAM DECIDES TO WRITE ITS BUFFER OUT THE FASTLOAD FILE, WHICH, OF COURSE, IS IN DRIVE 1. PLACING A DIFFERENT DISK IN THIS DRIVE WILL GET IT NICELY CLOBBERED IF THE PROGRAM DECIDES TO EMPTY ITS BUFFER WHILE YOUR OTHER DISK IS IN THERE. THEREFORE, CERTAIN SAFETY PRECAUTIONS ARE TAKEN IN THE PROGRAM TO PREVENT THIS FORM HAPPENING. FOR EXAMPLE, IF YOUR FILE WHICH YOU SAID WAS ON DRIVE 1 IS NOT FOUND THERE, YOUR ONLY TWO CHOICES ARE TO INSERT THE CORRECT DISK CONTAINING THE FILE INTO DRIVE 2, OR TO RETYPE ALL OF THE FILENAMES WITH THEIR DRIVE NUMBERS AND PAGE INFORMATION. THIS IS, OF COURSE, BECAUSE OF THE FACT THAT INSERTING THE CORRECT DISK INTO DRIVE 1 WOULD MEAN THAT THE FASTLOAD DISK WOULD BE OUT OF DRIVE 1 MEANING THAT YOUR DISK WOULD BE CLOBBERED. ANYWAY, BACK TO BETTER THINGS... WHEN YOU ARE DONE TYPING IN THE FILE INFORMATION, AND YOU HAVE TYPED THE KEY, THE TOP OF THE SCREEN WILL AGAIN CLEAR AND IT WILL ASK YOU FOR THE NAME OF THE FASTLOAD FILE. YOU MAY NAME IT ANY LEGAL FILE NAME THAT DOS WILL EXCEPT. THIS, OF COURSE, MEANS THAT THE FILENAME CAN'T BE OVER 30 CHARACTERS LONG AND MUST START WITH A LETTER OR SOMETHING SIMILAR (SUCH AS @,],[,^,_ OR \). WHEN DONE TYPING THE FASTLOAD FILENAME, JUST HIT THE RETURN KEY. THE TOP OF THE SCREEN WILL CLEAR AGAIN AND IT WILL NOW ASK FOR THE STARTING ADDRESS OF YOUR PROGRAM. THIS IS THE ADDRESS THAT IT WILL JUMP TO WHEN IT IS DONE WITH THE LOADING AND MOVING. THIS ADDRESS IS STORED AT LOCATIONS $8D8 (LOW) AND $8D9 (HIGH) OF THE FASTLOADER PREFIX. THEREFORE, IF YOU WANTED TO STOP THE FASTLOADER FROM JUMPING TO THE START OF THE PROGRAM AFTER IT WAS DONE LOADING AND MOVING THE PROGRAM, YOU WOULD SAY: ]BLOAD MY FASTLOAD FILE ]CALL -151 *8D8:69 FF (OR WHEREVER YOU WANT IT TO GO TO) *7FDG (START OF FASTLOAD PREFIX) THE SCREEN WILL FILL WITH ALL OF THE GARBAGE AND THE FILE WILL BE LOADED, MOVED, AND YOUR ROUTINE WILL BE JUMPED TO. THE STARTING ADDRESS OF YOUR PROGRAM MUST BE A 4-DIGIT HEX NUMBER. IF IT IS SOMETHING LIKE $800, FOR EXAMPLE, YOU WOULD SAY "0800". THE CURSOR WILL THEN JUMP TO THE "OK?" LINE AND YOU WOULD SAY EITHER "Y" OR "N". AFTER TYPING THE STARTING ADDRESS, YOU HAVE COMPLETED TYPING IN ALL OF THE INFORMATION THAT THE CREATE PROGRAM NEEDS TO KNOW ABOUT YOUR FASTLOAD FILE. AT THE BOTTOM OF THE SCREEN, IT WILL INSTRUCT YOU TO INSERT THE DISK THAT YOU WISH TO CREATE THE FASTLOAD FILE ON INTO DRIVE 1 AND TO THEN PRESS THE KEY. WHEN THIS IS DONE, THE CREATE PROGRAM WILL BEGIN CREATION OF YOUR FILE. WHEN DONE, IT WILL TELL YOU SO AND WILL ASK IF YOU'D LIKE TO CREATE ANOTHER FASTLOAD FILE. ANSWER WITH A "Y" OR AN "N" AND IT WILL EITHER START THE PROGRAM OVER OR EXIT INTO BASIC. APPENDIX A: ERROR MESSAGES THIS APPENDIX TELLS SOME OF THE ERROR MESSAGES YOU MAY ENCOUNTER WHILE ATTEMPTING TO CREATE A FASTLOAD FILE AND THE CAUSES OF THEM. 1. SO MANY FILES THAT THE FASTLOADER CAN'T KEEP TRACK OF THEM ALL. THIS MEANS THAT YOUR FILES AMOUNT TO MORE THAN 30 LOAD PAIRS (ALMOST LIKE FILES). THIS IS THE MAXIMUM THAT THE FASTLOADER PREFIX CAN HANDLE. TO SOLVE THIS PROBLEM, USE FEWER FILES. THIS CAN BE ACCOMPLISHED BY LINKING MORE THAN ONE FILE TOGETHER INTO ONE FILE. 2. FASTLOAD FILE IS GREATER THAN 246 SECTORS TOTAL (OVER 244 DATA SECTORS). THIS ERROR IS CAUSED BY LINKING FILES TOGETHER THAT AMOUNT TO A TOTAL OF OVER 244 DATA SECTORS. YOU SHOULD NOT GET THIS MESSAGE WITH VERSION 1.0 OF FASTLOAD CREATE UNLESS YOU HAVE FILES THAT OVERLAP EACH OTHER. 3. FASTLOAD FILE CANNOT FIT ON A DISK THAT IS THIS FULL. THIS ERROR IS CAUSED WHEN THE DISK IS TOO FULL (OBVIOUSLY). JUST GET OUT A DISK THAT ISN'T QUITE SO FULL AND USE IT INSTEAD. 4. THE DISKETTE DIRECTORY IS TOO FULL. YOU WILL GET THIS ERROR IF YOU HAVE MORE FILES THAN WERE ALLOCATED FOR. ON A NORMAL DISK, YOU HAVE ROOM FOR 105 FILES AND IT WILL TAKE A WHILE FOR YOU TO GET THIS ERROR MESSAGE. 5. NO ROOM LEFT FOR THE FASTLOADER WITH ALL OF THESE FILES. YOU WILL GET THIS MESSAGE WHEN THE TOTAL LENGTH OF YOUR DATA IS GREATER THAN $B9 PAGES. REMEMBER THAT THAT IS THE MAXIMUM LENGTH THAT THE FASTLOADER IS ABLE TO HANDLE AT THIS POINT. APPENDIX B: LOCATIONS USED IN THE FASTLOADER PREFIX THIS APPENDIX DESCRIBES IN DETAIL THE LOCATIONS WITHIN THE FASTLOAD PREFIX THAT ARE USED BY THE CREATE PROGRAM AND THAT MAY BE CHANGED BY THE USER. THIS APPENDIX, HOWEVER, DOES NOT DESCRIBE HOW TO SAVE THESE CHANGES BACK OUT THE DISK. THIS FASTLOAD PREFIX IS PLACED AT THE BEGINNING OF EVERY FASTLOAD FILE AND MAY BE LOADED WITH THE COMMAND: ]BLOAD MY FASTLOAD FILE ALL ADDRESSES ARE IN HEXADECIMAL. 7FD: A JUMP TO THE ROUTINE THAT MOVES THE FASTLOADER PREFIX DOWN INTO THE TEXT PAGE OF MEMORY. 800-827: FIRST LINE OF ID TEXT 828-863: LOAD PAIRS. THERE IS ROOM FOR 30 LOAD PAIRS IN THIS AREA WHICH ARE EACH 2 BYTES LONG. THE FIRST BYTE IS THE PAGE TO START LOADING AND THE SECOND BYTE IS THE NUMBER OF PAGES (SECTORS) TO LOAD INTO CONSECUTIVE PAGE NUMBERS. A ZERO AS THE FIRST BYTE TERMINATES LOADING. 865-87F: THIS IS THE RWTS DRIVER ROUTINE. IT LOADS THE DATA INTO THE APPROPRIATE LOCATIONS ON THE DISK ACCORDING TO THE LPT (LOAD PAIRS TABLE) AT LOCATIONS $828-$863. 880-8A7: SECOND LINE OF ID TEXT 8A8-8D6: THIS IS THE MOVER ROUTINE. WHEN THE DRIVER IS DONE LOADING IN THE DATA FROM THE DISK, THIS ROUTINE MOVES IT ALL INTO ITS APPROPRIATE PLACES IN MEMORY. 8C7: THIS IS LOCATION MP6D1 (SEE $8E0). 8CD: THIS IS LOCATION MP6D2 (SEE $8E0). 8D0: THIS IS LOCATION MVPG4 AND HOLDS THE NUMBER OF THE PAGE THAT WILL BE MOVED INTO PAGE 4 AFTER LOADING. 8D7-8D9: THIS IS A JUMP TO THE START OF THE PROGRAM. LOCATION $8D7 WILL ALWAYS BE A $4C (JMP OP-CODE) AND LOCATIONS $8D8 AND $8D9 WILL CONTAIN THE LOW AND HIGH BYTES, RESPECTIVELY, OF THE LOCATION TO JUMP TO. 8DA: THIS IS LOCATION MVPG0 AND HOLDS THE NUMBER OF THE PAGE THAT WILL BE MOVED INTO THE ZERO PAGE AFTER LOADING. 8DB: THIS IS LOCATION MVPG1 AND HOLDS THE NUMBER OF THE PAGE THAT WILL BE MOVED INTO PAGE 1 AFTER LOADING. 8DC: THIS IS LOCATION MVPG2 AND HOLDS THE PAGE NUMBER TO BE MOVED TO PAGE 2. 8DD: THIS IS LOCATION MVPG3 AND SHOULD ALWAYS CONTAIN A 3. 8DE: THIS LOCATION MUST CONTAIN A 4. 8DF: THIS IS LOCATION MVPG5 AND HOLDS THE PAGE NUMBER TO BE MOVED TO PAGE 5. 8E0: THIS IS LOCATION MVPG6 AND HOLDS THE PAGE NUMBER TO BE MOVED TO PAGE 6. LOCATIONS $8C7 AND 8CD MUST BE THE SAME AS THIS LOCATION AND ARE DUPLICATES. 8E1: THIS IS LOCATION MVPG7 AND HOLDS THE PAGE NUMBER TO BE MOVED TO PAGE 7. THE PAGE NUMBER TO BE MOVED TO PAGE 7. APPENDIX C: FUTURE VERSIONS SOME OPTIONS THAT MAY BE ADDED TO THE FASTLOADER OR THE FASTLOAD CREATE PROGRAM ARE LOADING INTO LANGUAGE CARD AND DISPLAYING A HI-RES TITLE PAGE DURING LOAD. IF THESE FEATURE GET ENOUGH REQUESTS WE WILL IMPLEMENT THEM IN FUTURE VERSIONS OF THIS PROGRAM. IF YOU WOULD LIKE TO MAKE A REQUEST OR IF YOU CAN THINK OF ANY OTHER NEW FEATURES TO BE ADDED TO ANY PART OF THIS PROGRAM OR IF YOU HAVE ANY QUESTIONS ABOUT FASTLOADER PLEASE LEAVE E-MAIL.